package main

import "fmt"

func main() {
	fmt.Println("if单分支流程控制语句-----------------------------------------------------------")
	fmt.Println()

	var count int = 100
	if count > 30 {
		fmt.Println("对不起，口罩存量不足")
	}

	//{}一定不能省略
	//条件表达式左右的()是建议省略的
	//在golang里，if后面可以并列的加入变量的定义：
	if count1 := 1; count1 < 9 {
		fmt.Println("口罩存量充足")
	}

	fmt.Println("if单多分支流程控制语句-----------------------------------------------------------")
	fmt.Println()

	if count > 200 {
		fmt.Println("对不起，口罩存量不足")
	} else if count == 100 {
		fmt.Println("口罩售卖完毕")
	} else {
		fmt.Println("口罩存量充足")
	}

	fmt.Println("for循环流程控制语句-----------------------------------------------------------")
	fmt.Println()
	// for循环的语法格式：
	// for 初始表达式; 布尔表达式（条件判断）; 迭代因子 {
	// 	循环体;--》反复重复执行的内容
	// }
	// 注意：for的初始表达式 不能用var定义变量的形式，要用:=

	var sum int = 0
	for i := 1; i <= 5; i++ {
		sum += i
	}

	fmt.Println(sum)

	/* //格式零活写法
		i := 1 //变量的初始化
	    for i<=5 {//条件表达式。判断条件
	        fmt.Println("你好 Golang")//循环体
	        i++//迭代
	     } */

	//死循环：
	// for {
	// 	fmt.Println("你好 Golang")
	// }
	/* for ;; {
	    fmt.Println("你好 Golang")
	} */

	fmt.Println("for range循环流程控制语句-----------------------------------------------------------")
	fmt.Println()

	//对str进行遍历，遍历的每个结果的索引值被i接收，每个结果的具体数值被value接收
	//遍历对字符进行遍历的
	var str string = "hello golang你好"
	for i, value := range str {
		fmt.Printf("索引为：%d,具体的值为：%c \n", i, value)
	}
}
